package com.geek.water.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.geek.water.entity.Site;
import com.geek.water.vo.AreaTreeVO;
import com.geek.water.vo.HierarchyNode;

import java.util.List;

public interface SiteService extends IService<Site> {
    public List<AreaTreeVO> getAreaTree(Long siteId);
    public void validateSiteBeforeDelete(Long siteId);

    /**
     * 获取完整的层级数据（客户->站点->区域）
     * @return 层级数据
     */
    List<HierarchyNode> getFullHierarchy();

    /**
     * 获取地图标记列表
     * @param customerId 客户ID（可选）
     * @return 地图标记列表
     */
    List<Site> getMapMarkers(Long customerId);

    /**
     * 批量更新地图位置
     * @param sites 站点列表
     * @return 是否更新成功
     */
    boolean batchUpdateMapPositions(List<Site> sites);

    /**
     * 获取客户下的所有地图标记
     * @param customerId 客户ID
     * @return 地图标记列表
     */
    List<Site> getCustomerMarkers(Long customerId);

    /**
     * 根据坐标范围查询站点
     * @param minLat 最小纬度
     * @param maxLat 最大纬度
     * @param minLng 最小经度
     * @param maxLng 最大经度
     * @return 站点列表
     */
    List<Site> getSitesByBounds(Double minLat, Double maxLat, Double minLng, Double maxLng);
}
